package reg.domain;

public class ManifestacionPonderada implements Comparable<ManifestacionPonderada>{

	private Manifestacion manifestacion;
	private int idUsuario;
	private double ponderacion; //este valo no es solo dependiente de la manifestacion sino de un usuario tambien
	private int dias; //dias restantes para que la manifestacion se celebre
	private int asistentes; // numero de asistentes totales que iran a la manifestacion
	private int amigos; //numero de amigos del usuario que iran a la manifestacion
	private int distancia; //distancia aproximada entre la casa del usuario y la manifestacion
	private String formula; //contiene la formula con la que se ha calculado la ponderacion
	
	//constructor por defecto
	public ManifestacionPonderada (Manifestacion manif, int idUsuario)
	{
		setManifestacion(manif);
		this.setIdUsuario(idUsuario);
	}
	
	//constructor completo
	public ManifestacionPonderada (Manifestacion manifestacion, int idUsuario, double ponderacion, int dias, int asistentes, int amigos, int distancia, String formula)
	{
		this.manifestacion = manifestacion;
		this.idUsuario = idUsuario;
		this.ponderacion = ponderacion;
		this.dias = dias;
		this.asistentes = asistentes;
		this.amigos = amigos;
		this.distancia = distancia;
		this.formula = formula;		
	}
	
	public void setFormula(String formula) 
	{
		this.formula = formula;
	}
	public String getFormula() 
	{
		return formula;
	}

	public void setDistancia(int distancia) 
	{
		this.distancia = distancia;
	}

	public int getDistancia() 
	{
		return distancia;
	}

	public void setAmigos(int amigos) 
	{
		this.amigos = amigos;
	}

	public int getAmigos() 
	{
		return amigos;
	}

	public void setAsistentes(int asistentes) 
	{
		this.asistentes = asistentes;
	}

	public int getAsistentes() 
	{
		return asistentes;
	}

	public void setDias(int dias) 
	{
		this.dias = dias;
	}

	public int getDias() 
	{
		return dias;
	}

	public void setPonderacion(double ponderacion) 
	{
		this.ponderacion = ponderacion;
	}

	public double getPonderacion() 
	{
		return ponderacion;
	}

	public void setIdUsuario(int idUsuario) 
	{
		this.idUsuario = idUsuario;
	}

	public int getIdUsuario() 
	{
		return idUsuario;
	}

	public void setManifestacion(Manifestacion manifestacion) 
	{
		this.manifestacion = manifestacion;
	}

	public Manifestacion getManifestacion() 
	{
		return manifestacion;
	}

	public int compareTo(ManifestacionPonderada manifestacion) 
	{
		return new Double(this.ponderacion).compareTo(manifestacion.ponderacion);
	}
}
